App.Views.Pasajes = function () {
    var self = this;
    var uriParams = {};
    var localCache = {
        salida : [],
        vuelta : []
    };

    self.pasajeModel = {};



    self.paIdaDisponibles = ko.observableArray();
    self.paVueltaDisponibles = ko.observableArray();
    self.idaSelected = ko.observable({});
    self.vueltaSelected = ko.observable({});
    self.IsOneWay =  ko.observable();

    self.precioFinal = ko.computed(function() {
        var precio = 0;
        precio += (_.isEmpty(self.idaSelected()) == false ) ? self.idaSelected().Precio : 0;
        precio += (_.isEmpty(self.vueltaSelected()) == false ) ? self.vueltaSelected().Precio : 0;
        
        return precio;
    }, this);


    var getServiciosDisponibles = function (IsSalida) {
        $.ajax({
            url: "/Servicios/BuscarServicio",
            type: "GET",
            success: function (Response) {
                if (Response.success == true) {
                    if (Response.results > 0) {
                        if(IsSalida)
                        {
                            self.paIdaDisponibles(Response.data);
                        }
                        else
                        {
                            self.paVueltaDisponibles(Response.data);
                        }
                    }
                }
            },
            error: function (jqXHR, textStatus, errorThrown) {
            }
        });
    };

    self.buscarPasajes = function (e, el) {
        window.location.href = el.target.href
    };

    self.seleccionarPasaje = function(isIda, item, event ){
        if ( isIda == true ) {
            localCache.salida = self.paIdaDisponibles();
            self.idaSelected(item);
            self.paIdaDisponibles(item);
            App.Cache.selectedPasajes.origen = _.extend(item, uriParams);
        }
        else {
            localCache.vuelta = self.paVueltaDisponibles();
            self.paVueltaDisponibles(item);
            self.vueltaSelected(item);
             App.Cache.selectedPasajes.vuelta = _.extend(item, uriParams);          
        }
    };

    self.deseleccionarPasaje = function(isIda, item, event ) {
        if ( isIda == true )
        {
            self.paIdaDisponibles(localCache.salida);
            localCache.salida = [];
            self.idaSelected({});
            App.Cache.selectedPasajes.origen = {};
        }
        else
        {
            self.paVueltaDisponibles(localCache.vuelta);
            localCache.vuelta = [];
            self.vueltaSelected({});
            App.Cache.selectedPasajes.vuelta = {};
        }
    };

    App.Views.Pasajes.prototype.init = function () {
        uriParams = App.Common.Aux.getURIparams();

        self.pasajeModel = new App.Models.Pasajes.BuscarPasaje({
            origen : uriParams.origen,
            destino : uriParams.destino,
            fechaIda : uriParams.fechaIda,
            fechaVuelta : (_.isEmpty(uriParams.fechaVuelta) == true ) ? "" : uriParams.fechaVuelta,
            pasajeros : uriParams.pasajeros,
            IsOneWay : uriParams.IsOneWay
        });


        getServiciosDisponibles(true); // Busar Ida 
        if ( uriParams.IsOneWay != true )
        {
            getServiciosDisponibles(false); // Buscar Vuelta
        }

        App.Common.Aux.typeAheadTerminalesInit(["txtPasajesOOrigenTerminal", "txtPasajesODestinoTerminal"]);
        App.Common.Aux.dpickerInit({id: "dpickerPasajesSalida", validateWith: "dpickerPasajesVuelta" });
    };

};


